import { defineStore } from 'pinia'
interface IUserstate{
    menus:IMenuModel[]
}
type menu=IMenuModel&{children:IMenuModel[]}
const useStore = defineStore('useStoreId', {
  // 推荐使用 完整类型推断的箭头函数
  state: ():IUserstate => {
    return {
        menus:[]
    }
  },

  getters:{
    myrouterdata(){
        // console.log("store",this.menus);
        
         // 处理 pinia 里面的菜单数据， 就 双层的数组结构
      let menus: menu[] = [];
      // 找到所有的1级
      menus = this.menus
        .filter((item) => item.parentId === 0)
        .map((item) => ({
          ...item,
          children: [],
        }));

      // 继续把2级加入对应的1级的children
      this.menus.forEach((sub) => {
        // 找到 menus 1级里面的id和我的parentId相等的，就我的上级
        const p = menus.find((item) => item.id === sub.parentId);
        // 如果找到了我的上级，加入它的children
        if (p && sub.hidden === 0) {
          p.children.push(sub);
        }
      });

      return menus;
    }
  }

})


export {useStore}